iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
3
Modern Web

美麗的邂逅-與安室....伊春系列 第 3

網, 網, 到處都是網 (web-server)

  • 分享至 

  • xImage
  •  
	我們都在網裡,而網(Web),也在我們心裡。

          是不是可以寫一個應用程式,在你的電腦(或手機)、我的電腦(或手機)、大家的電腦(或手機)上跑,但是共用相同的資料或其他資源呢?例如公司的內控系統 (ERP, Call Center...)、圖書館的管理系統... 有太多的應用必須俱備這樣的架構,大家各別用自己桌上或手上的電腦/手機,卻可以存取相同的資料庫或其他資源,甚至於彼此溝通。如何可以相對簡單地開發這種系統?
          在這裡,我(可能過度)簡化資訊技術歷史的發展,我們只抓那個核心,當然,有許多高手或有不同的意見,歡迎提供,增廣見聞。要解決上述問題,解決的方法有許多,最基本的方法,就是提供一個伺服器/服務器/Server或是稱作後端(Back end)的設備,由這個設備提供共用的資源(例如讀取數據庫)的存取與更新,而操作的電腦則稱作 Client 或是前端(Front end)、終端(terminal). 在前端操作,需要提取或更新共用的資料時,再連結到後端來處理。因此也稱作 Client – Server 的架構。Client/前端主要負責人機介面,要美,要清,要明白;Server/後端主要負責資源的處理,能快,能穩,能多工。各取所需,各盡所能,聽起來好像不錯。
          因此,會有(概念上)二支程式,一支放在Server/後端,一支放在Client/前端,這個 Server 端的程式還好,就安裝在(概念上)一個服務器上,只有一份,但是Client/前端就不一樣,會有許多份,各自安裝在不同的操作電腦上,這會引申許多問題,每一次版本更新時,每個終端都要更新,還要考慮前後端程式相容性的問題、如何下載、還要考慮是否可以不停機更換,前端程式與各種前端硬體的相容性,還有許許多多的困擾或潛在問題。試想,如果有一個 “萬能” 終端,提供天下所有服務器的連結,多美! 假互連網之賜,這個萬能終端就是瀏覽器 (Browser), 目前流行的有 IE, Chrome, Firefox, Safari 等,解決了與前端電腦硬體設備的相容問題,透過這個萬能終端,我們只需專注在服務器的程式,每個人顧好自己就行,多美好的社會! 對,這個架構就稱作 Web-Server 架構。
          當然,應用千千百百種,終端要萬能必有玄機(萬能,若是搞不好,就是萬萬不能...對對對,和一句話很像...免費的最貴...你懂的)。在現行程式開發中包含有二個部分,一個部分在瀏覽器連結後,會自動載入終端來執行,望文生義,還是稱作前端程式。前端程式,目前的當家花旦(框架)就是 Angular, 使用的程式語言是 javascript; 另一個部分則保留在服務器中執行,稱作後端程式,目前頂天的武生(框架)是 Spring Boot, 使用的程式語言是 Java. 但是在執行時,可以自動將前端程式載至Browser執行,在開發時,也可以視為 "一包",就像餐廳工作人員,前場,後場,小店一個人全包也行。
          前/後端程式的程式語言(Language)/程式框架(framework)/開發工具(IDE)都有許多選擇。咱在這裡,老王賣瓜,自賣自誇,就不談其他的選擇。在這系列的文章中,前端是以 javascript / Angular / StackBlitz(Visual Studio Code) 為主體,後端是以 java / Spring Boot / Eclipse 為骨幹。如果讀者對這六者都不清楚,但是有興趣,那這系列的文章就是為你寫的,我也刻意限制文章不要長,不要包含太多的重點在一個文章裡,讓讀者可以較輕鬆的學習,一天學一點點,畢竟我認為:樂趣是維持學習最重要的一環。工作/生活都不容易,一定要快樂,才能維持身心健康。帖撒羅尼迦前書第五章第十六節說,要常常喜樂(rejoice always),話又扯遠了,最後多說一句,StackBlitz 和 Visual Studio Code,用起來很像,只是前者是在線(on-line)執行。聽不懂?沒有關係,後文會仔細說明。
          到現在,好像都沒有實際的操演,都是一些風花雪月,不著邊際,各位讀者別急,放輕鬆,下一回就要輪真刀實槍,實際演練。
Don’t go away, keep turned (不要走開,請拭目以待)。


上一篇
框架中的紅塵 (framework)
下一篇
出發 (angular CLI)
系列文
美麗的邂逅-與安室....伊春30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言